<?php

class MenusController extends AppController
{
	
	public $name = 'Menus';

	private function removeRelMenusToTipos()
	{
		// DESATIVA OS RELACIONAMENTOS FEITOS NO MODELO "Menu" PORQUE
		// ESTAVA CAUSANDO ERROS (BUG)

		$this->Menu->unbindModel( array(
			'hasOne' => array(
				'Idioma'
			)
		) );
	}

	public function index($idioma = null)
	{
		$this->verificaLogado();
		
		$this->loadModel('Idioma');
		$dadosIdioma = $this->Idioma->find( 'list', array(
			'conditions' => array(
				"Idioma.ATIVO" => "S"
			),
			'fields' => array(
				'Idioma.CD_IDIOMA',
				'Idioma.NOME'
			)
		) );
		$this->set( 'dadosIdioma', $dadosIdioma );
		
		$urlcms = Configure::read( 'cms.urlPortal' );
		$this->set( 'urlcms', $urlcms );

		$menus = $this->Menu->recuperaMenusCMS($idioma);
		$this->set( 'menus', $menus );
	}

	public function detalhes( $cd_menu = null )
	{
		$this->verificaLogado();
		$this->Menu->CD_MENU = $cd_menu;
		$this->set( 'menu', $this->Menu->read() );
	}

	public function novo()
	{
		$this->verificaLogado();
		
		/* MONTA O SELECT DE OUTROS MODELS */
		$this->loadModel('Idioma');

		$dadosIdioma = $this->Idioma->find( 'list', array(
			'conditions' => array(
				"Idioma.ATIVO" => "S"
			),
			'fields' => array(
				'Idioma.CD_IDIOMA',
				'Idioma.NOME'
			)
		) );
		$this->set( 'dadosIdioma', $dadosIdioma );
		
		$conteudosInstance = ClassRegistry::init( 'Conteudo' );
		$dadosLinks = $conteudosInstance->find( 'list', array(
			'conditions' => array(
				"Conteudo.publicado" => "S"
			),
			'fields' => array(
				'Conteudo.link',
				'Conteudo.titulo'
			)
		) );
		$this->set( 'dadosLinks', $dadosLinks );

		/* FIM DE MONTA O SELECTS DE OUTROS MODELS */
		
		if ( !empty( $this->data ) ) {
			
			// atributo link recebera o conteudo de outrosLink se este
			// nao for vazio
			if ( $this->data[ 'Menu' ][ 'outrosLink' ] != '' ) {
				$this->data[ 'Menu' ][ 'LINK' ] = $this->data[ 'Menu' ][ 'outrosLink' ] .
				 '.html';
			}
			
			if ( $this->Menu->save( $this->data ) ) {
				$this->registraLogs( null, 'CRIOU MENU: ' . $this->data[ 'Menu' ][ 'TEXTO' ] );
				
				$this->Session->setFlash( 'Menu salvo com sucesso.' );
				$this->redirect( array(
					'action' => 'index'
				) );
			}
		}
	}

	public function apagar( $cd_menu )
	{
		$this->verificaLogado();
		// Pode ser assim tb nao preciso mais
		// passar o parametro $cd_menu para a funcao del()
		//$this->Menu->cd_menu = $cd_menu;
		

		// Recupera o nome do menu que esta sendo apagado
		$nomeMenu = $this->Menu->find( 'first', array(
			'conditions' => array(
				'Menu.CD_MENU' => $cd_menu
			)
		) );
		
		if ( $this->Menu->delete( $cd_menu, false ) ) {
			$this->registraLogs( null, 'APAGOU MENU: ' . $nomeMenu[ 'Menu' ][ 'TEXTO' ] );
			
			$this->Session->setFlash( 'Menu apagado com sucesso' );
			$this->redirect( array(
				'action' => 'index'
			) );
		}
	
	}

	public function editar( $cd_menu )
	{
		$this->verificaLogado();

		$this->loadModel('Idioma');
		$dadosIdioma = $this->Idioma->find( 'list', array(
			'conditions' => array(
				"Idioma.ATIVO" => "S"
			),
			'fields' => array(
				'Idioma.CD_IDIOMA',
				'Idioma.NOME'
			)
		) );
		$this->set( 'dadosIdioma', $dadosIdioma );
		
		$conteudosInstance = ClassRegistry::init( 'Conteudo' );
		$dadosLinks = $conteudosInstance->find( 'list', array(
			'conditions' => array(
				"Conteudo.publicado" => "S"
			),
			'fields' => array(
				'Conteudo.link',
				'Conteudo.titulo'
			)
		) );
		$this->set( 'dadosLinks', $dadosLinks );
		
		if ( empty( $this->data ) ) {
			$this->data = $this->Menu->read();
		} else {
			// atributo link recebera o conteudo de outrosLink se este
			// nao for vazio
			if ( $this->data[ 'Menu' ][ 'outrosLink' ] !=
			 '' ) {
				$this->data[ 'Menu' ][ 'LINK' ] = $this->data[ 'Menu' ][ 'outrosLink' ] .
				 '.html';
			}
			
			$this->Menu->CD_MENU = $cd_menu;
			if ( $this->Menu->save( $this->data ) ) {
				$this->registraLogs( null, 'EDITOU MENU: ' . $this->data[ 'Menu' ][ 'TEXTO' ] );
				
				$this->Session->setFlash( 'Menu atualizado com sucesso' );
				$this->redirect( array(
					'action' => 'index'
				) );
			}
		}
	}
}
?>
